﻿using System;

namespace YUMI.GIS.Interfaces
{
    /// <summary>
    /// 定义了几何空间关系、拓扑和集合等操作。
    /// </summary>
    public interface IKTopologicalOperator
    {
        /// <summary>
        /// 求两几何对象的并集。
        /// </summary>
        IKGeometry Union(IKGeometry other);

        /// <summary>
        /// 返回源对象的封闭边界。
        /// </summary>
        IKGeometry Boundary { get; }

        /// <summary>
        /// 返回对象的缓冲区。
        /// </summary>
        IKGeometry Buffer(double distance);
        /// <summary>
        /// 求凸壳
        /// </summary>
        IKGeometry ConvexHull();
        /// <summary>
        /// 求两几何对象的交集。
        /// </summary>
        IKGeometry Intersect(IKGeometry other);
        /// <summary>
        /// 是否为简单几何对象。
        /// </summary>
        bool IsSimple { get; }
        /// <summary>
        /// 化简成简单拓扑的几何对象。
        /// </summary>
        void Simplify();
    }
}
